home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-25 | 8.9 KB | 286 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: Commands.cpp
- // Release Version: $ ODF 1 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #include "Hello.hpp"
-
- #ifndef COMMANDS_H
- #include "Commands.h"
- #endif
-
- #ifndef PART_H
- #include "Part.h"
- #endif
-
- #ifndef CONTENT_H
- #include "Content.h"
- #endif
-
- // ----- Framework Includes -----
-
- #ifndef FWPRESEN_H
- #include "FWPresen.h"
- #endif
-
- // ----- OpenDoc Includes -----
-
- #ifndef SOM_Module_OpenDoc_Commands_defined
- #include <CmdDefs.xh>
- #endif
-
- //========================================================================================
- // RunTime Info
- //========================================================================================
-
- #ifdef FW_BUILD_MAC
- #pragma segment odfhello
- #endif
-
- FW_DEFINE_AUTO(CHelloEditCommand)
- FW_DEFINE_AUTO(CHelloDropCommand)
- FW_DEFINE_AUTO(CHelloDragCommand)
-
- //========================================================================================
- // CHelloEditCommand
- //========================================================================================
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand constructor
- //----------------------------------------------------------------------------------------
-
- CHelloEditCommand::CHelloEditCommand(Environment* ev,
- ODCommandID id,
- CHelloContent* itsContent,
- FW_CFrame* frame) :
- FW_CClipboardCommand(ev, id, frame, FW_kCanUndo),
- fHelloContent(itsContent)
- {
- switch (id)
- {
- case kODCommandCut:
- SetMenuStringsFromResource(ev, kHelloUndoStrings, kUndoCutTextMsg, kRedoCutTextMsg);
- break;
- case kODCommandClear:
- SetMenuStringsFromResource(ev, kHelloUndoStrings, kUndoClearTextMsg, kRedoClearTextMsg);
- break;
- case kODCommandPaste:
- SetMenuStringsFromResource(ev, kHelloUndoStrings, kUndoPasteTextMsg, kRedoPasteTextMsg);
- break;
- }
- FW_END_CONSTRUCTOR
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand destructor
- //----------------------------------------------------------------------------------------
-
- CHelloEditCommand::~CHelloEditCommand()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand::SaveUndoState
- //----------------------------------------------------------------------------------------
-
- void CHelloEditCommand::SaveUndoState(Environment *ev)
- {
- fSavedTextData = fHelloContent->GetTextData();
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand::UndoIt
- //----------------------------------------------------------------------------------------
-
- void CHelloEditCommand::UndoIt(Environment* ev)
- {
- FW_CClipboardCommand::UndoIt(ev); // call inherited
-
- switch (GetCommandID(ev))
- {
- case kODCommandCut:
- case kODCommandClear:
- this->RestoreSelection(ev);
- break;
-
- case kODCommandPaste:
- this->SwapSelection(ev);
- break;
- }
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand::RedoIt
- //----------------------------------------------------------------------------------------
-
- void CHelloEditCommand::RedoIt(Environment *ev)
- {
- FW_CClipboardCommand::RedoIt(ev); // call inherited
-
- switch (GetCommandID(ev))
- {
- case kODCommandCut:
- case kODCommandClear:
- this->RemoveSelection(ev);
- break;
-
- case kODCommandPaste:
- this->SwapSelection(ev);
- break;
- }
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand::RemoveSelection
- //----------------------------------------------------------------------------------------
-
- void CHelloEditCommand::RemoveSelection(Environment* ev)
- {
- fHelloContent->ClearTextData(ev);
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand::RestoreSelection
- //----------------------------------------------------------------------------------------
-
- void CHelloEditCommand::RestoreSelection(Environment* ev)
- {
- fHelloContent->SetTextData(ev, fSavedTextData);
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloEditCommand::SwapSelection
- //----------------------------------------------------------------------------------------
-
- void CHelloEditCommand::SwapSelection(Environment* ev)
- {
- FW_CString255 textData = fHelloContent->GetTextData();
- fHelloContent->SetTextData(ev, fSavedTextData);
- fSavedTextData = textData;
- }
-
- //========================================================================================
- // CHelloDragCommand
- //========================================================================================
-
- //----------------------------------------------------------------------------------------
- // CHelloDragCommand constructor
- //----------------------------------------------------------------------------------------
-
- CHelloDragCommand::CHelloDragCommand(Environment* ev,
- CHelloContent* content,
- FW_CFrame* frame) :
- FW_CDragCommand(ev, frame, FW_kCanUndo),
- fHelloContent(content)
- {
- SetMenuStringsFromResource(ev, kHelloUndoStrings, kUndoDragTextMsg, kRedoDragTextMsg);
- FW_END_CONSTRUCTOR
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDragCommand destructor
- //----------------------------------------------------------------------------------------
-
- CHelloDragCommand::~CHelloDragCommand()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDragCommand::SaveUndoState
- //----------------------------------------------------------------------------------------
-
- void CHelloDragCommand::SaveUndoState(Environment *ev) // Override
- {
- fSavedTextData = fHelloContent->GetTextData();
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDragCommand::UndoIt
- //----------------------------------------------------------------------------------------
-
- void CHelloDragCommand::UndoIt(Environment* ev)
- {
- fHelloContent->SetTextData(ev, fSavedTextData);
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDragCommand::RedoIt
- //----------------------------------------------------------------------------------------
-
- void CHelloDragCommand::RedoIt(Environment* ev)
- {
- fHelloContent->ClearTextData(ev);
- }
-
- //========================================================================================
- // CHelloDropCommand
- //========================================================================================
-
- //----------------------------------------------------------------------------------------
- // CHelloDropCommand constructor
- //----------------------------------------------------------------------------------------
-
- CHelloDropCommand::CHelloDropCommand(Environment *ev,
- CHelloContent* content,
- FW_CFrame* frame,
- ODDragItemIterator* dropInfo,
- ODFacet* odFacet,
- const FW_CPoint& dropPoint) :
- FW_CDropCommand(ev, frame, dropInfo, odFacet, dropPoint, FW_kCanUndo),
- fHelloContent(content)
- {
- SetMenuStringsFromResource(ev, kHelloUndoStrings, kUndoDropTextMsg, kRedoDropTextMsg);
- FW_END_CONSTRUCTOR
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDropCommand destructor
- //----------------------------------------------------------------------------------------
-
- CHelloDropCommand::~CHelloDropCommand()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDropCommand::SaveUndoState
- //----------------------------------------------------------------------------------------
-
- void CHelloDropCommand::SaveUndoState(Environment *ev)
- {
- fSavedTextData = fHelloContent->GetTextData();
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDropCommand::UndoIt
- //----------------------------------------------------------------------------------------
-
- void CHelloDropCommand::UndoIt(Environment* ev)
- {
- this->SwapSelection(ev);
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDropCommand::RedoIt
- //----------------------------------------------------------------------------------------
-
- void CHelloDropCommand::RedoIt(Environment* ev)
- {
- this->SwapSelection(ev);
- }
-
- //----------------------------------------------------------------------------------------
- // CHelloDropCommand::SwapSelection
- //----------------------------------------------------------------------------------------
-
- void CHelloDropCommand::SwapSelection(Environment* ev)
- {
- FW_CString255 textData = fHelloContent->GetTextData();
- fHelloContent->SetTextData(ev, fSavedTextData);
- fSavedTextData = textData;
- }
-
-